package com.dxl.system.service;

import com.dxl.system.model.Config;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dxl.base.Result;
import java.util.List;

/**
 * <b> 系统设置服务接口
 * </b><br><br><i>Description</i> :
 * <br>Date: 2019-10-03    <br>Author : dxl
 */
public interface ConfigService extends IService<Config>   {

    /**
     * <b> 插入系统设置
     * </b><br><br><i>Description</i> : 不能为空：键-config_key 值-config_value 配置名称-config_name ；不能重复：键-config_key  
     * @param config Config
     * @return com.dxl.base.Result Config
     * <br><br>Date: 2019-10-03    <br>Author : dxl
     */
    public Result addOne(Config config);

    /**
     * <b> 删除系统设置
     * </b><br><br><i>Description</i> : 
     * @param configIds List: Integer
     * @return com.dxl.base.Result int
     * <br><br>Date: 2019-10-03    <br>Author : dxl
     */
    public Result delByIds(List<Integer> configIds);

    /**
     * <b> 编辑系统设置
     * </b><br><br><i>Description</i> : 不能重复：键-config_key 
     * @param config Config
     * @return com.dxl.base.Result Config
     * <br><br>Date: 2019-10-03    <br>Author : dxl
     */
    public Result editOne(Config config);

    /**
     * <b> ID查询系统设置
     * </b><br><br><i>Description</i> : 
     * @param configId Integer
     * @return com.dxl.base.Result: Config
     * <br><br>Date: 2019-10-03    <br>Author : dxl
     */
    public Result getById(Integer configId);

    /**
     * <b> 条件查询系统设置
     * </b><br><br><i>Description</i> : 
     * @param config Config
     * @return com.dxl.base.Result List: Config
     * <br><br>Date: 2019-10-03    <br>Author : dxl
     */
    public Result getList(Config config);

    /**
     * <b> 分页条件查询系统设置
     * </b><br><br><i>Description</i> : 
     * @param config Config, currentPage -Integer, pageSize -Integer
     * @return com.dxl.base.Result List: Config
     * <br><br>Date: 2019-10-03     <br>Author : dxl
     */
    public Result getListByPage(Config config, Integer currentPage, Integer pageSize);

    /**
     * <b> 系统设置能否新增
     * </b><br><br><i>Description</i> : 不能为空：键-config_key 值-config_value 配置名称-config_name ；不能重复：键-config_key  
     * @param config Config
     * @return com.dxl.base.Result boolean
     * <br><br>Date: 2019-10-03     <br>Author : dxl
     */
    public Result isConfigAddable(Config config);

    /**
     * <b> 系统设置能否编辑
     * </b><br><br><i>Description</i> : 不能重复：键-config_key 
     * @param config Config
     * @return com.dxl.base.Result boolean
     * <br><br>Date: 2019-10-03     <br>Author : dxl
     */
    public Result isConfigEditable(Config config);

}
